﻿using BLevy.Entidad;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmSocioBaja : Form
    {
        private int socio_id { get; set; }

        public frmSocioBaja(int id)
        {
            socio_id = id;
            InitializeComponent();
        }

        private void IniciarControles()
        {
            txtApellido.Text = string.Empty;
            txtDocumento.Text = string.Empty;
            txtMotivo.Text = string.Empty;
            txtNombres.Text = string.Empty;
            txtNroSocio.Text = string.Empty;
            this.ActiveControl = txtMotivo;
        }

        private void InhabilitarControles()
        {
            txtApellido.Enabled = false;
            txtDocumento.Enabled = false;
            txtNombres.Enabled = false;
            txtNroSocio.Enabled = false;
        }

        private Boolean ValidarControles()
        {
            bool resultado = true;
            error.Clear();

            if(string.IsNullOrEmpty(txtMotivo.Text))
            {
                resultado = false;
                error.SetError(txtMotivo, "Debe completar el campo Motivo.");
                return resultado;
            }

            return resultado;
        }

        private void frmSocioBaja_Load(object sender, EventArgs e)
        {
            IniciarControles();
            InhabilitarControles();

            try
            {
                Socio socio = GetSocioById(socio_id);

                txtNroSocio.Text = String.Format("{0:00000000}", socio.id);
                txtApellido.Text = socio.apellido;
                txtDocumento.Text = socio.documento;
                txtNombres.Text = socio.nombres;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private Socio GetSocioById(int socio_id)
        {
            Socio socio = null;

            try
            {
                socio = Negocio.Socios.FindById(socio_id);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return socio;
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.DialogResult = System.Windows.Forms.DialogResult.No;
            this.Close();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if(ValidarControles() == true)
            {
                try
                {
                    SocioBaja baja = new SocioBaja();
                    baja.socio_id = socio_id;
                    baja.fecha = dtpFecha.Value;
                    baja.motivo = txtMotivo.Text;
                    baja.operacion = "B";
                    baja.tipo_baja = "M";

                    int resultado = Negocio.Socios.SocioBaja(socio_id, baja);
                    if (resultado > 0)
                    {
                        MessageBox.Show("Los datos se registraron correctamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.DialogResult = System.Windows.Forms.DialogResult.Yes;
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Ocurrio un error al registrar los datos. Intente Nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        
    }
}
